Data-Delineation in Software Binaries and its Application to Buffer-Overrun Discovery [preprint]
نویسندگان
چکیده
Detecting memory-safety violations in binaries is complicated by the lack of knowledge of the intended data layout, i.e., the locations and sizes of objects. We present lightweight, static, heuristic analyses for recovering the intended layout of data in a stripped binary. Comparison against DWARF debugging information shows high precision and recall rates for inferring source-level object boundaries. On a collection of benchmarks, our analysis eliminates a third to a half of incorrect object boundaries identified by an IDA Pro-inspired heuristic, while retaining nearly all valid object boundaries. In addition to measuring their accuracy directly, we evaluate the effect of using the recovered data for improving the precision of static buffer-overrun detection in the defect-detection tool CodeSonar/x86. We demonstrate that CodeSonar’s false-positive rate drops by about 80% across our internal evaluation suite for the tool, while our approximation of CodeSonar’s recall only degrades about 25%.
منابع مشابه
Analyzing String Buffers in C
A buffer overrun occurs in a C program when input is read into a buffer whose length exceeds that of the buffer. Overruns often lead to crashes and are a widespread form of security vulnerability. This paper describes an analysis for detecting overruns before deployment which is conservative in the sense that it locates every possible buffer overrun. The paper details the subtle relationship be...
متن کاملForty Years of X-Ray Binaries
In 2012 it was forty years ago that the discovery of the first X-ray binary Centaurus X-3 became known. That same year it was discovered that apart from the High-Mass X-ray Binaries (HMXBs) there are also Low-Mass X-ray Binaries (LMXBs), and that Cygnus X-1 is most probably a black hole. By 1975 also the new class of Be/X-ray binaries was discovered. After this it took 28 years before ESAs INTE...
متن کاملA First Step Towards Automated Detection of Buffer Overrun Vulnerabilities
We describe a new technique for finding potential buffer overrun vulnerabilities in security-critical C code. The key to success is to use static analysis: we formulate detection of buffer overruns as an integer range analysis problem. One major advantage of static analysis is that security bugs can be eliminated before code is deployed. We have implemented our design and used our prototype to ...
متن کاملA Practical Dynamic Buffer Overflow Detector
Despite previous efforts in auditing software manually and automatically, buffer overruns are still being discovered in programs in use. A dynamic bounds checker detects buffer overruns in erroneous software before it occurs and thereby prevents attacks from corrupting the integrity of the system. Dynamic buffer overrun detectors have not been adopted widely because they either (1) cannot guard...
متن کاملLow-Overhead Software Dynamic Translation
Software dynamic translation (SDT) is a technology that allows programs to be modified as they are running. The overhead of monitoring and modifying a running program’s instructions is often substantial in SDT. As a result SDT can be impractically slow, especially in SDT systems that do not or can not employ dynamic optimization to offset overhead. This is unfortunate since SDT has obvious adva...
متن کاملذخیره در منابع من
با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید
عنوان ژورنال:
دوره شماره
صفحات -
تاریخ انتشار 2015